Computer graphic operations that are initiated by pointing devices are typically two types: drawing operations and control operations. Drawing operations describe loci for the placement of visible marks on the image, analogous to drawing on a piece of paper by making a motion with a pen in contact with the surface. Control operations are used to initiate and guide the execution of computer functions leading to modification of the visible marks. Control operations are especially important to the performance of editing functions such as erasing, moving, or changing the visual qualities (e.g. line width) of visible marks of the image.
With most user interface systems, control functions are generally instituted by giving commands to the system (e.g., keyboard command languages, menuing techniques, etc.). Giving commands can be simplified into two parts: specifying (creating or selecting) the command and issuing it, i.e., telling the system to "execute it." Often times users specify commands they wish to change, adjust or abort before they are issued to the system.
In keyboard command languages, the command is typed in and then issued with the Return or Enter key. Usually, the commands can be edited before they are issued. If no specified control key is available to edit the command then the backspace can be used. Often times the whole specified command can be cleared by some control key. In menus, the user can move about the menu selecting or deselecting different items. Even when the menus are hierarchic, it is possible to descend and ascend in the menu hierarchy before selecting an item. An item is issued by the user pressing or lifting a button on the pointing device. If the user does not want to issue any of the items on the menu, the pointing device is moved off of the menu (called a null selection) before the issuing action.
It is noted that the basic function of gesture-based input such as a pen-based notebook computer or Liveboard (trademark of Xerox Corporation) is to allow the user to create graphical objects such as freehand marks by simply drawing ("inking") them. Such a mark is then a data object in the system. Operations can then be performed on these objects by particular control functions known as gestures. A gesture is a handdrawn command and it is a mark created with a stylus input device that is interpreted by the system as designating an action for the system to perform. In order to institute a simple control command by gesture, the user would draw a gesture which represents some desired function and then commit to the command by lifting the input device (e.g. stylus) from the input surface of a display or a button on the device (e.g. mouse). The system is capable of detecting that a user is entering a gesture command on a touch panel instead of data usually by some action taken on the part of the user. Such action may entail holding or exerting pressure on a button on the stylus.
There are many different types of command gestures that operate on specified objects. However, a user must "select" a set of graphical objects before such objects can be operated on. There are many types of command gestures for selecting objects drawn by a user. One is a loop gesture in which objects are selected by drawing a circle around such objects by a freeform gestural stroke. Once specified, the selection can be represented by either highlighting the individual objects and/or by showing the enclosure.
FIG. 2 illustrates such a freeform selection "loop" gesture. A plurality of objects 34 are drawn on touch panel 14 and are selected for a future operation by encircling such objects with freeform selection 32.
Once objects are selected, i.e., are enclosed, the user may desire to alter his/her selection, i.e., add and remove objects from the selection. The user however may not wish to go through the laborious task of redrawing the entire loop gesture. It would be desirable to allow the user to alter the selection loop without having to redraw the entire loop.